﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using DevExpress.XtraEditors;
using DevExpress.XtraGrid.Views.Grid;
using DevExpress.XtraGrid.Views.Base;
using ClassLib.UserControl.DanhMuc;
using DevExpress.XtraSplashScreen;
using ISumen;
using Sumen.Business;
using Sumen.Business.Model.Presenter.Sys;
using Sumen_Stock.LookAndFeel.Sumen_System;

namespace Sumen_Stock.LookAndFeel.Category
{
    public partial class Frm_Position_X : DevExpress.XtraEditors.XtraForm
    {
        private FromCode _fromCode = FromCode.FrmPositionX;
        public Frm_Position_X()
        {
            InitializeComponent();
            ucDanhMuc1.mySetValidate = new UCDanhMuc.setValidate(myValidate);
            //if (ClsPublic.Writelog == "1")
            //{
            //    SysLogPresenter log = new SysLogPresenter();
            //    log.Add(_fromCode, EnumFormStatus.View, "", "");
            //}
        }
        public override void Refresh()
        {
            SplashScreenManager.ShowForm(typeof(WaitForm1));
            base.Refresh();
            ucDanhMuc1.reLoad();
            ucDanhMuc1.reLoadParent();
            SplashScreenManager.CloseForm();
        }
        public void myValidate(GridView gridView, ValidateRowEventArgs e)
        {
            try
            {
                e.Valid = ucDanhMuc1.Check_NULL(gridView, "Posx_Code_X", "Không được rỗng");
                if (!e.Valid) return;
                e.Valid = ucDanhMuc1.Check_NULL(gridView, "Posx_POSITION_Y_ID", "Vui lòng chọn");
                if (!e.Valid) return;
                e.Valid = ucDanhMuc1.Check_NULL(gridView, "Posx_POSITION_RANGE_ID", "Vui lòng chọn");
                if (!e.Valid) return;
                e.Valid = ucDanhMuc1.Check_NULL(gridView, "Posx_STOCK_ID", "Vui lòng chọn");
                if (!e.Valid) return;
                e.Valid = ucDanhMuc1.Check_NULL(gridView, "Posx_Quantity_Max", "Không được rỗng");
                if (!e.Valid) return;
                e.Valid = ucDanhMuc1.Check_NULL(gridView, "Posx_Quantity", "Không được rỗng");
                if (!e.Valid) return;
                e.Valid = ucDanhMuc1.Check_NUM(gridView, "Posx_Quantity", "Số lượng Số lượng hiện tại phải lớn hơn không");
                if (!e.Valid) return;
                e.Valid = ucDanhMuc1.Check_NUM(gridView, "Posx_Quantity_Max", "Số lượng chứa tối đa phải lớn hơn không");
                if (!e.Valid) return;
                string quantity_max = gridView.GetRowCellValue(gridView.FocusedRowHandle, gridView.Columns["Posx_Quantity_Max"]).ToString().Trim();
                string quantity = gridView.GetRowCellValue(gridView.FocusedRowHandle, gridView.Columns["Posx_Quantity"]).ToString().Trim();
                e.Valid = (int.Parse(quantity_max) - int.Parse(quantity)) >= 0;
                if (!e.Valid)
                {
                    gridView.SetColumnError(gridView.Columns["Posx_Quantity"], "Số lượng chứa tối đa không được nhỏ hơn Số lượng Số lượng hiện tại");
                    return;
                }
            }
            catch
            {
                // Nếu không tồn tại table thì tiếp tục, không cần xử lý catch;
            }
        }

        private void Frm_Position_X_FormClosing(object sender, FormClosingEventArgs e)
        {
            if (ClsPublic.Writelog == "1" && ucDanhMuc1.IsSave)
            {
                SysLogPresenter log = new SysLogPresenter();
                log.Add(_fromCode, EnumFormStatus.Modify, "", "");
            }
        }





    }
}